home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60src.lha / Vim / vim60 / src / Make_sas.mak < prev    next >
Encoding:
Makefile  |  2001-03-25  |  7.7 KB  |  341 lines

  1. # vim: set ft=make :
  2. # Makefile for VIM on the Amiga, using SAS/Lattice C 6.0 to 6.58
  3. #
  4. # Do NOT use the peephole optimizer with a version before 6.56!
  5. # It messes up all kinds of things:
  6. # For 6.0 and 6.1, expand_env() will not work correctly.
  7. # For 6.2 and 6.3 the call to free_line in u_freeentry is wrong.
  8. # The "read.me" file for version 6.56 includes a remark about a fix for the
  9. # peephole optimizer.  Everything before 6.56 will probably fail.
  10. #
  11. # You should use Manx Aztec C whenever possible, because it has been tested.
  12. #
  13. # The prototypes from Manx and SAS are incompatible. If the prototypes
  14. # were generated by Manx, first do "touch *.c; make proto" before "make".
  15. # The prototypes generated on Unix work for both.
  16. #
  17. # Note: Not all dependencies are included. This was done to avoid having
  18. #       to compile everything when a global variable or function is added.
  19.  
  20. #>>>>> choose options:
  21.  
  22. ### See feature.h for a list of optionals.
  23. ### Any other defines can be included here.
  24.  
  25. # NO_ARP    Don't include ARP functions
  26. # SASC=658    Sas/C version number
  27. # NEWSASC    fixes a bug in the syntax highlighting?
  28. DEFINES = DEF=NO_ARP DEF=NEWSASC DEF="SASC=658"
  29.  
  30. #>>>>> if HAVE_TGETENT is defined termlib.o has to be used
  31. #TERMLIB = termlib.o
  32. TERMLIB =
  33.  
  34. #>>>>> choose NODEBUG for normal compiling, the other for debugging and
  35. # profiling
  36. # don't switch on debugging when generating proto files, it crashes the
  37. # compiler.
  38. DBG = NODEBUG
  39. #DBG = DBG=SF
  40.  
  41. #>>>>> choose NOOPTPEEP for 6.0 to 6.3, NOOPT for debugging
  42. # with version 6.56 and later you can probably use OPT
  43. OPTIMIZE  = OPT
  44. #OPTIMIZE = NOOPTPEEP
  45. #OPTIMIZE = NOOPT
  46.  
  47. # for 6.58 you can use the line below, but be warned it takes a loooonnnggg time
  48. #OPTIMIZE=OPT  OPTIMIZERSCHEDULER OPTIMIZERTIME NoOPTIMIZERALIAS \
  49.     OptimizerComplexity=10 OptimizerDepth=10 OptimizerRecurDepth=10 \
  50.     OptimizerInLocal OPTPEEP
  51.  
  52. #generate code for your processor - 68060 will work for 040's as well.
  53. CPU=68000
  54. #CPU=68020
  55. #CPU=68030
  56. #CPU=68040
  57. #CPU=68060
  58.  
  59. #Error reporting - rexx or console
  60. ERROR = ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
  61. #ERROR = ERRORREXX ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
  62.  
  63. #memory types, if you have fast use it :->,
  64. #    ANY = will work on all machines
  65. #    FAST = this is the best option, for speed
  66. #MEMORYTYPE=FAST
  67. MEMORYTYPE=ANY
  68.  
  69. #MEMSIZE - this is for compile time only for speed of compilation
  70. #MEMSIZE=HUGE
  71. MEMSIZE=LARGE
  72. #MEMSIZE=SMALL
  73.  
  74. #>>>>> end of choices
  75. ###########################################################################
  76.  
  77. CC    = sc
  78. GST    = vim.gst
  79. COPTS    = SINT SCODE SDATA
  80. SHELL    = csh
  81. DEL    = $(SHELL) -c rm -f
  82.  
  83. # ignore error messages for uninitialized variables, they are mostly not correct
  84. CFLAGS  = NOLINK $(DBG) CPU=$(CPU) NOSTACKCHECK DEF=AMIGA CODE=FAR idir=proto ignore=317
  85. CFLAGS2 = $(OPTIMIZE) $(ERROR) GSTIMMEDIATE GST=$(GST)
  86. CFLAGS3 = $(COPTS) STRINGMERGE MEMSIZE=$(MEMSIZE)
  87. CFLAGS4 = $(DEFINES) DATAMEMORY=$(MEMORYTYPE)
  88.  
  89. PROPT = DEF=PROTO GPROTO GPPARM MAXIMUMERRORS=999 GENPROTOSTATICS GENPROTOPARAMETERS
  90.  
  91. SRC = \
  92.     buffer.c \
  93.     charset.c \
  94.     diff.c \
  95.     digraph.c \
  96.     edit.c \
  97.     eval.c \
  98.     ex_cmds.c \
  99.     ex_cmds2.c \
  100.     ex_docmd.c \
  101.     ex_getln.c \
  102.     fileio.c \
  103.     fold.c \
  104.     getchar.c \
  105.     main.c \
  106.     mark.c \
  107.     memfile.c \
  108.     memline.c \
  109.     menu.c \
  110.     message.c \
  111.     misc1.c \
  112.     misc2.c \
  113.     move.c \
  114.     mbyte.c \
  115.     normal.c \
  116.     ops.c \
  117.     option.c \
  118.     os_amiga.c \
  119.     quickfix.c \
  120.     regexp.c \
  121.     screen.c \
  122.     search.c \
  123.     syntax.c \
  124.     tag.c \
  125.     term.c \
  126.     ui.c \
  127.     undo.c \
  128.     window.c \
  129.     version.c
  130.  
  131. OBJ = \
  132.     buffer.o \
  133.     charset.o \
  134.     diff.o \
  135.     digraph.o \
  136.     edit.o \
  137.     eval.o \
  138.     ex_cmds.o \
  139.     ex_cmds2.o \
  140.     ex_docmd.o \
  141.     ex_getln.o \
  142.     fileio.o \
  143.     fold.o \
  144.     getchar.o \
  145.     main.o \
  146.     mark.o \
  147.     memfile.o \
  148.     memline.o \
  149.     menu.o \
  150.     message.o \
  151.     misc1.o \
  152.     misc2.o \
  153.     move.o \
  154.     mbyte.o \
  155.     normal.o \
  156.     ops.o \
  157.     option.o \
  158.     os_amiga.o \
  159.     quickfix.o \
  160.     regexp.o \
  161.     screen.o \
  162.     search.o \
  163.     syntax.o \
  164.     tag.o \
  165.     term.o \
  166.     ui.o \
  167.     undo.o \
  168.     window.o \
  169.     $(TERMLIB)
  170.  
  171. PRO = \
  172.     proto/buffer.pro \
  173.     proto/charset.pro \
  174.     proto/diff.pro \
  175.     proto/digraph.pro \
  176.     proto/edit.pro \
  177.     proto/eval.pro \
  178.     proto/ex_cmds.pro \
  179.     proto/ex_cmds2.pro \
  180.     proto/ex_docmd.pro \
  181.     proto/ex_getln.pro \
  182.     proto/fileio.pro \
  183.     proto/fold.pro \
  184.     proto/getchar.pro \
  185.     proto/main.pro \
  186.     proto/mark.pro \
  187.     proto/memfile.pro \
  188.     proto/memline.pro \
  189.     proto/menu.pro \
  190.     proto/message.pro \
  191.     proto/misc1.pro \
  192.     proto/misc2.pro \
  193.     proto/move.pro \
  194.     proto/mbyte.pro \
  195.     proto/normal.pro \
  196.     proto/ops.pro \
  197.     proto/option.pro \
  198.     proto/os_amiga.pro \
  199.     proto/quickfix.pro \
  200.     proto/regexp.pro \
  201.     proto/screen.pro \
  202.     proto/search.pro \
  203.     proto/syntax.pro \
  204.     proto/tag.pro \
  205.     proto/term.pro \
  206.     proto/termlib.pro \
  207.     proto/ui.pro \
  208.     proto/undo.pro \
  209.     proto/window.pro
  210.  
  211. all: proto Vim
  212.  
  213. Vim: scoptions $(OBJ) version.c version.h
  214.     $(CC) $(CFLAGS) version.c
  215.     $(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim
  216.  
  217. debug: scoptions $(OBJ) version.c version.h
  218.     $(CC) $(CFLAGS) version.c
  219.     $(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim
  220.  
  221. proto: $(GST) $(PRO)
  222.  
  223. tags:
  224.     spat ctags $(SRC) *.h
  225. #    csh -c ctags $(SRC) *.h
  226.  
  227. # can't use delete here, too many file names
  228. clean:
  229.     $(DEL) *.o Vim $(GST)
  230.  
  231. # generate GlobalSymbolTable, which speeds up the compile time.
  232. #
  233. # A preprocessing stage is used to work arounda bug in the GST generator, in
  234. # that it does not handle nested makefiles properly in this stage.
  235. # Ignore error message for not producing any code (105).
  236. $(GST): scoptions vim.h keymap.h macros.h ascii.h term.h structs.h
  237.     $(CC) $(CFLAGS) PREPROCESSORONLY vim.h objectname pre.h
  238.     $(CC) MGST=$(GST) pre.h ignore=105
  239.     $(DEL) pre.h
  240.  
  241. # generate an options file, because SAS/C smake can't handle the amiga command
  242. # line can handle the lengths that this makefile will impose on the shell.
  243. # (Manx's make can do this).
  244. scoptions: Make_sas.mak
  245.     @echo "Generating - $@ ..."
  246.     @echo $(CFLAGS) > scoptions
  247.     @echo $(CFLAGS1) >> scoptions
  248.     @echo $(CFLAGS2) >> scoptions
  249.     @echo $(CFLAGS3) >> scoptions
  250.     @echo $(CFLAGS4) >> scoptions
  251.     @echo $(COPTS) >>scoptions
  252.     @echo done
  253.  
  254. ###########################################################################
  255.  
  256. $(OBJ): $(GST) vim.h
  257. $(PRO): $(GST) vim.h
  258.  
  259. .c.o:
  260.     $(CC) $(CFLAGS) $*.c
  261.  
  262. .c.pro:
  263.     $(CC) $(CFLAGS) GPFILE=proto/$*.pro $(PROPT) $*.c
  264.  
  265. # dependancies
  266. buffer.o:        buffer.c
  267. proto/buffer.pro:    buffer.c
  268. charset.o:        charset.c
  269. proto/charset.pro:    charset.c
  270. diff.o:            diff.c
  271. proto/diff.pro:        diff.c
  272. digraph.o:        digraph.c
  273. proto/digraph.pro:    digraph.c
  274. edit.o:            edit.c
  275. proto/edit.pro:        edit.c
  276. eval.o:            eval.c
  277. proto/eval.pro:        eval.c
  278. ex_cmds.o:        ex_cmds.c
  279. proto/ex_cmds.pro:    ex_cmds.c
  280. ex_cmds2.o:        ex_cmds2.c
  281. proto/ex_cmds2.pro:    ex_cmds2.c
  282. ex_docmd.o:        ex_docmd.c ex_cmds.h
  283. proto/ex_docmd.pro:    ex_docmd.c ex_cmds.h
  284. ex_getln.o:        ex_getln.c
  285. proto/ex_getln.pro:    ex_getln.c
  286. fileio.o:        fileio.c
  287. proto/fileio.pro:    fileio.c
  288. fold.o:            fold.c
  289. proto/fold.pro:        fold.c
  290. getchar.o:        getchar.c
  291. proto/getchar.pro:    getchar.c
  292. main.o:            main.c
  293. proto/main.pro:        main.c
  294. mark.o:            mark.c
  295. proto/mark.pro:        mark.c
  296. memfile.o:        memfile.c
  297. proto/memfile.pro:    memfile.c
  298. memline.o:        memline.c
  299. proto/memline.pro:    memline.c
  300. menu.o:            menu.c
  301. proto/menu.pro:        menu.c
  302. message.o:        message.c
  303. proto/message.pro:    message.c
  304. misc1.o:        misc1.c
  305. proto/misc1.pro:    misc1.c
  306. misc2.o:        misc2.c
  307. proto/misc2.pro:    misc2.c
  308. move.o:            move.c
  309. proto/move.pro:        move.c
  310. mbyte.o:        mbyte.c
  311. proto/mbyte.pro:    mbyte.c
  312. normal.o:        normal.c
  313. proto/normal.pro:    normal.c
  314. ops.o:            ops.c
  315. proto/ops.pro:        ops.c
  316. option.o:        option.c
  317. proto/option.pro:    option.c
  318. os_amiga.o:        os_amiga.c
  319. proto/os_amiga.pro:    os_amiga.c
  320. quickfix.o:        quickfix.c
  321. proto/quickfix.pro:    quickfix.c
  322. regexp.o:        regexp.c
  323. proto/regexp.pro:    regexp.c
  324. screen.o:        screen.c
  325. proto/screen.pro:    screen.c
  326. search.o:        search.c
  327. proto/search.pro:    search.c
  328. syntax.o:        syntax.c
  329. proto/syntax.pro:    syntax.c
  330. tag.o:            tag.c
  331. proto/tag.pro:        tag.c
  332. term.o:            term.c
  333. proto/term.pro:        term.c
  334. termlib.o:        termlib.c
  335. proto/termlib.pro:    termlib.c
  336. ui.o:            ui.c
  337. proto/ui.pro:        ui.c
  338. undo.o:            undo.c
  339. proto/undo.pro:        undo.c
  340. window.o:        window.c
  341.